package cn.edu.zafu.bigdata.liuwenyi;

interface Movable { // 定义 Movable 接口
    void move(); // 抽象方法，表示物体移动
    void stop(); // 抽象方法，表示物体停止移动
}

interface Resizable { // 定义 Resizable 接口
    void resize(double factor); // 抽象方法，表示物体根据因子进行缩放
}

class Car_2 implements Movable { // Car 类实现 Movable 接口
    @Override
    public void move() { // 实现 move 方法
        System.out.println("The car is moving."); // 打印信息
    }

    @Override
    public void stop() { // 实现 stop 方法
        System.out.println("The car has stopped."); // 打印信息
    }
}

class ResizableCircle implements Movable, Resizable { // ResizableCircle 类实现两个接口
    private double radius; // 定义半径属性

    public ResizableCircle(double radius) { // 构造函数
        this.radius = radius; // 初始化半径
    }

    @Override
    public void move() { // 实现 move 方法
        System.out.println("The circle is moving."); // 打印信息
    }

    @Override
    public void stop() { // 实现 stop 方法
        System.out.println("The circle has stopped."); // 打印信息
    }

    @Override
    public void resize(double factor) { // 实现 resize 方法
        radius *= factor; // 根据因子缩放半径
        System.out.println("Resized circle radius: " + radius); // 打印缩放后的半径
    }
}


public class Interface_Test { // 定义测试类
    public static void main(String[] args) { // main 方法入口
        Car_2 car = new Car_2(); // 创建 Car 实例
        car.move(); // 调用 move 方法
        car.stop(); // 调用 stop 方法

        ResizableCircle circle = new ResizableCircle(5); // 创建 ResizableCircle 实例
        circle.move(); // 调用 move 方法
        circle.stop(); // 调用 stop 方法
        circle.resize(2); // 调用 resize 方法，缩放因子为 2
    }
}

